﻿using System.Collections;
using System.Collections.Generic;
using winS.winML;

namespace winS.Unity.Process
{
    /// <summary>
    /// 对 <see cref="IStep"/> 的实现
    /// </summary>
    public abstract class Step : IStep
    {
        [WinMLSerializable]
        public string guid { get; set; }
        [WinMLSerializable]
        public virtual bool isMute { get; set; }
        public virtual bool isOnlyOnceNextSteps { get; }
        [WinMLSerializable]
        public virtual DrawingData drawingData { get; set; } = new DrawingData();

        public virtual IEnumerator Execute(ProcessContext processContext)
        {
            yield break;
        }

        public abstract IEnumerable<string> GetSubsequentSteps(ProcessContext processContext);
    }
}
